package main

import (
	"go_gin_gorm_oceanlearn_study/common"
	"os"

	"github.com/gin-gonic/gin"
	"github.com/spf13/viper"
)

// 1、初始化项目模块
// go mod init go_gin_gorm_oceanlearn_study

// go mod tidy 可以补全依赖

// 2、安装Gin依赖
// go get -u github.com/gin-gonic/gin

// 3、安装Gorm数据库
// go get -u github.com/jinzhu/gorm

// 4、注意编译时需要：go run main.go routers.go

// 5、安装jwt中间件实现用户登录认证：go get -u github.com/dgrijalva/jwt-go

// 6、安装config组件 go get github.com/spf13/viper

func main() {
	InitConfig() // 读取配置

	//获取数据库DB
	db := common.InitDB()
	defer db.Close()

	//开启引擎
	r := gin.Default()
	r = CollectRoute(r)  //路由组

	// 修改监听端口
	port := viper.GetString("server.port")
	if port != "" {
		panic(r.Run(":" + port))
	}
	//panic(r.Run()) // listen and serve on 0.0.0.0:8080             // r.Run(":9090")
}

// 获取配置文件
func InitConfig() {
	workDir, _ := os.Getwd()
	viper.SetConfigName("application")  // 设置要读取的文件名
	viper.SetConfigType("yml")  // 设置要读取的文件类型
	viper.AddConfigPath(workDir + "/config")  // 设置文件路径
	err := viper.ReadInConfig()  // 读
	if err != nil {
		return
	}
}
